home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
demovers
/
scripter
/
demo
/
fak.sic
< prev
next >
Wrap
Text File
|
1998-09-26
|
968b
|
45 lines
/*
* Berechnung einige Fakultaeten, sowohl rekursiv als auch iterativ.
* Bis zur Fakultaet von 15 kann mit Integern gerechnet werden. Fuer
* groessere Werte reicht der Wertebereich dann nicht mehr aus, aber
* in Scripter kann man dann einfach mit Floats weiterrechnen, da alle
* Operatoren in den Fakultaetsfunktionen auch mit Floats arbeiten.
*/
for (i = 0; i <= 15; ++i) {
printf("iterativ: %d! = %d\n", i, iter_fak(i));
printf("rekursiv: %d! = %d\n", i, rec_fak(i));
}
/*
* Jetzt gehts mit Floats weiter. Die Praezision muss ein wenig erhoeht
* werden, da es sonst schnell Ueberlauefe gibt.
*/
precision(32);
for (i = 16.0; i <= 30.0; i += 1.0) {
printf("iterativ: %0.0f! = %0.0f\n", i, iter_fak(i));
printf("rekursiv: %0.0f! = %0.0f\n", i, rec_fak(i));
}
proc iter_fak(n)
local result;
{
result = 1;
while (n > 1) {
result *= n;
n -= 1;
}
return result;
}
proc rec_fak(n);
{
if (n < 2)
return 1;
else
return n * rec_fak(n - 1);
}